Method and apparatus for providing a central dictionary and glossary server

ABSTRACT

A method and apparatus provides a central dictionary and glossary server. An application executing on a client is able to access a local copy of a dictionary or glossary. A master dictionary or glossary is updated at a server, and the update to the master dictionary or glossary is served to the application on the client to update the local copy of the dictionary or glossary. A datastream may also be processed by automatically scanning a datastream and automatically detecting, in the datastream, a word that cannot be matched to a word in a dictionary or glossary. The unmatched word is identified as an acronym, and in response, data associated with the acronym, selected from a hierarchical set of glossaries, is inserted into the datastream in close proximity to the acronym. In another aspect of processing a datastream, in response to an indication that the unmatched word is a properly spelled new term, a dictionary or glossary may be updated with the new term, and the dictionary or glossary is a member of a hierarchically ordered set of dictionaries and/or glossaries. The system may also contain an organizational database comprising information for organizational units associated with a data processing system, and each glossary in the hierarchical set of glossaries is associated with an organizational unit.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] The present invention is related to application entitled “METHODAND APPARATUS FOR ACRONYM CHECKER AND AUTODEFINER”, Ser. No.______,attorney docket no. AT9-98-922, assigned to the same assignee, andincorporated herein by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Technical Field

[0003] The present invention relates generally to an improved dataprocessing system and, in particular, to a method and apparatus forprocessing documents and text streams.

[0004] 2. Description of Related Art

[0005] Jargon is the bane of one's life in the modern world. Scientistsand engineers are confronted with journals and papers that are filledwith technical jargon. Government agencies produce voluminous reportswith special terms and acronyms.

[0006] Many of these documents are written by persons familiar withtechnology but are not necessarily written by technical writers.Therefore, these documents are not written in a manner sympathetic toone who is unfamiliar with the subject matter. The documents tend tohave many undefined terms that may include cryptic and undefined termsand acronyms. It may be difficult or impossible to read and comprehend adocument with undefined terms.

[0007] The problem of simplifying technical papers grows steadily worseas technology marches onward. Although many corporations have attemptedto incorporate open standards into their products, which results in someterms for proprietary technology becoming obsolete and unused, thenumber of special terms continues to increase rather than decrease.Technological growth spurs more technological innovation that requiresspecial words to be coined for new concepts. As a result, more specialterms or words are created.

[0008] The coining of new words and acronyms does not follow anyparticular rules, and there is no central authority that acts as aclearinghouse for reserving words. This state of affairs compounds theproblem of new jargon because identically spelled acronyms may becreated that have entirely different meanings. New words may be createdwithin an organization that have different meanings depending on theperson using the word and/or the context in which the word appears. Itcan then be especially difficult to determine which meaning was intendedby the author of a document if the user is aware of two identicallyspelled words with different meanings.

[0009] Moreover, the definition or description of a new word or acronymfor a newly developed concept or product may be slowly disseminatedthroughout an organization so that some persons understand a new termwhile others are unaware of its meaning.

[0010] Therefore, it would be advantageous to have a method andapparatus for rendering documents more readable. It would be furtheradvantageous if the method and apparatus provided a user with theability to understand documents in a manner that was reconciled to theuser's context. It would be particularly advantageous if informationabout new terms were disseminated throughout an organization in a timelymanner.

SUMMARY OF THE INVENTION

[0011] The present invention is a method and apparatus for providing acentral dictionary and glossary server. An application executing on aclient is able to access a local copy of a dictionary or glossary. Amaster dictionary or glossary is updated at a server, and the update tothe master dictionary or glossary is served to the application on theclient to update the local copy of the dictionary or glossary. Adatastream may also be processed by automatically scanning a datastreamand automatically detecting, in the datastream, a word that cannot bematched to a word in a dictionary or glossary. The unmatched word isidentified as an acronym, and in response, data associated with theacronym, selected from a hierarchical set of glossaries, is insertedinto the datastream in close proximity to the acronym. In another aspectof processing a datastream, in response to an indication that theunmatched word is a properly spelled new term, a dictionary or glossarymay be updated with the new term, and the dictionary or glossary is amember of a hierarchically ordered set of dictionaries and/orglossaries. The system may also contain an organizational databasecomprising information for organizational units associated with a dataprocessing system, and each glossary in the hierarchical set ofglossaries is associated with an organizational unit.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The novel features believed characteristic of the invention areset forth in the appended claims. The invention itself, however, as wellas a preferred mode of use, further objectives and advantages thereof,will best be understood by reference to the following detaileddescription of an illustrative embodiment when read in conjunction withthe accompanying drawings, wherein:

[0013]FIG. 1 depicts a pictorial representation of a distributed dataprocessing system in which the present invention may be implemented;

[0014]FIG. 2 is a block diagram depicting a data processing system,which may be implemented as a server;

[0015]FIG. 3 is a block diagram illustrating a data processing system inwhich the present invention may be implemented;

[0016]FIG. 4 is a diagram depicting an example for configuring adictionary/spell checker and an acronym/glossary tool among othersoftware components in relation to the storage of data files andinformation that may be accessed by each of the software components;

[0017]FIG. 5 is a diagram depicting a standard document window within agraphical user interface;

[0018]FIG. 6 is a pictorial representation of an application windowdepicting a manner in which an acronym/glossary tool may be invoked inanother application;

[0019]FIG. 7 is a pictorial document window depicting an acronym and itsexpansion within a datastream;

[0020]FIG. 8 is a pictorial representation depicting a dialog box for atool that combines spell checking capabilities and glossary termprocessing capabilities;

[0021]FIG. 9 is a pictorial representation depicting a set ofhierarchically arranged glossaries;

[0022]FIG. 10 is a pictorial representation depicting a specific user'spreference list for the manner in which a set of hierarchically arrangedglossaries are to be searched; and

[0023]FIG. 11 is a diagram depicting a standard document window within agraphical user interface in which a user is presented with a choice ofinformation retrieved from multiple glossaries.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0024] With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a distributed data processing system in which thepresent invention may be implemented. Distributed data processing system100 is a network of computers in which the present invention may beimplemented. Distributed data processing system 100 contains a network102, which is the medium used to provide communications links betweenvarious devices and computers connected together within distributed dataprocessing system 100. Network 102 may include permanent connections,such as wire or fiber optic cables, or temporary connections madethrough telephone connections.

[0025] In the depicted example, a server 104 is connected to network 102along with storage unit 106. In addition, clients 108, 110, and 112 alsoare connected to a network 102. These clients 108, 110, and 112 may be,for example, personal computers or network computers. For purposes ofthis application, a network computer is any computer, coupled to anetwork, which receives a program or other application from anothercomputer coupled to the network. In the depicted example, server 104provides data, such as boot files, operating system images, andapplications to clients 108-112. Clients 108, 110, and 112 are clientsto server 104. Distributed data processing system 100 may includeadditional servers, clients, and other devices not shown. In thedepicted example, distributed data processing system 100 is the Internetwith network 102 representing a worldwide collection of networks andgateways that use the TCP/IP suite of protocols to communicate with oneanother. At the heart of the Internet is a backbone of high-speed datacommunication lines between major nodes or host computers, consisting ofthousands of commercial, government, educational and other computersystems that route data and messages. Of course, distributed dataprocessing system 100 also may be implemented as a number of differenttypes of networks, such as for example, an intranet, a local areanetwork (LAN), or a wide area network (WAN). FIG. 1 is intended as anexample, and not as an architectural limitation for the presentinvention.

[0026] Referring to FIG. 2, a block diagram depicts a data processingsystem, which may be implemented as a server, such as server 104 in FIG.1, in accordance with a preferred embodiment of the present invention.Data processing system 200 may be a symmetric multiprocessor (SMP)system including a plurality of processors 202 and 204 connected tosystem bus 206. Alternatively, a single processor system may beemployed. Also connected to system bus 206 is memory controller/cache208, which provides an interface to local memory 209. I/O bus bridge 210is connected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O bus bridge 210 may be integrated asdepicted.

[0027] Peripheral component interconnect (PCI) bus bridge 214 connectedto I/O bus 212 provides an interface to PCI local bus 216. A number ofmodems may be connected to PCI bus 216. Typical PCI bus implementationswill support four PCI expansion slots or add-in connectors.Communications links to network computers 108-112 in FIG. 1 may beprovided through modem 218 and network adapter 220 connected to PCIlocal bus 216 through add-in boards.

[0028] Additional PCI bus bridges 222 and 224 provide interfaces foradditional PCI buses 226 and 228, from which additional modems ornetwork adapters may be supported. A memory-mapped graphics adapter 230and hard disk 232 may also be connected to I/O bus 212 as depicted,either directly or indirectly.

[0029] Those of ordinary skill in the art will appreciate that thehardware depicted in FIG. 2 may vary. For example, other peripheraldevices, such as optical disk drives and the like, also may be used inaddition or in place of the hardware depicted. The depicted example isnot meant to imply architectural limitations with respect to the presentinvention.

[0030] The data processing system depicted in FIG. 2 may be, forexample, an IBM RISC/System 6000 system, a product of InternationalBusiness Machines Corporation in Armonk, N.Y., running the AdvancedInteractive Executive (AIX) operating system.

[0031] With reference now to FIG. 3, a block diagram illustrates a dataprocessing system in which the present invention may be implemented.Data processing system 300 is an example of a client computer. Dataprocessing system 300 employs a peripheral component interconnect (PCI)local bus architecture. Although the depicted example employs a PCI bus,other bus architectures such as Micro Channel and ISA may be used.Processor 302 and main memory 304 are connected to PCI local bus 306through PCI bridge 308. PCI bridge 308 also may include an integratedmemory controller and cache memory for processor 302. Additionalconnections to PCI local bus 306 may be made through direct componentinterconnection or through add-in boards. In the depicted example, localarea network (LAN) adapter 310, SCSI host bus adapter 312, and expansionbus interface 314 are connected to PCI local bus 306 by direct componentconnection. In contrast, audio adapter 316, graphics adapter 318, andaudio/video adapter 319 are connected to PCI local bus 306 by add-inboards inserted into expansion slots. Expansion bus interface 314provides a connection for a keyboard and mouse adapter 320, modem 322,and additional memory 324. SCSI host bus adapter 312 provides aconnection for hard disk drive 326, tape drive 328, and CD-ROM drive330. Typical PCI local bus implementations will support three or fourPCI expansion slots or add-in connectors.

[0032] An operating system runs on processor 302 and is used tocoordinate and provide control of various components within dataprocessing system 300 in FIG. 3. The operating system may be acommercially available operating system such as OS/2, which is availablefrom International Business Machines Corporation. “OS/2” is a trademarkof International Business Machines Corporation. An object orientedprogramming system such as Java may run in conjunction with theoperating system and provides calls to the operating system from Javaprograms or applications executing on data processing system 300. “Java”is a trademark of Sun Microsystems, Inc. Instructions for the operatingsystem, the object-oriented operating system, and applications orprograms are located on storage devices, such as hard disk drive 326,and may be loaded into main memory 304 for execution by processor 302.

[0033] Those of ordinary skill in the art will appreciate that thehardware in FIG. 3 may vary depending on the implementation. Otherinternal hardware or peripheral devices, such as flash ROM (orequivalent nonvolatile memory) or optical disk drives and the like, maybe used in addition to or in place of the hardware depicted in FIG. 3.Also, the processes of the present invention may be applied to amultiprocessor data processing system.

[0034] For example, data processing system 300, if optionally configuredas a network computer, may not include SCSI host bus adapter 312, harddisk drive 326, tape drive 328, and CD-ROM 330, as noted by dotted line332 in FIG. 3 denoting optional inclusion. In that case, the computer,to be properly called a client computer, must include some type ofnetwork communication interface, such as LAN adapter 310, modem 322, orthe like. As another example, data processing system 300 may be astand-alone system configured to be bootable without relying on sometype of network communication interface, whether or not data processingsystem 300 comprises some type of network communication interface. As afurther example, data processing system 300 may be a Personal DigitalAssistant (PDA) device which is configured with ROM and/or flash ROM inorder to provide nonvolatile memory for storing operating system filesand/or user-generated data.

[0035] The depicted example in FIG. 3 and above-described examples arenot meant to imply architectural limitations.

[0036] The present invention uses a distributed data processing systemsimilar to that shown in FIG. 1 to organize a set of hierarchicallyrelated glossaries. The various glossaries may be stored throughout anorganizational network yet managed by a single server that isresponsible for tracking, searching, and sorting the information storedin these glossaries.

[0037] With reference now to FIG. 4, a diagram depicts an example forconfiguring an dictionary/spell checker tool and acronym/glossary toolamong other software components in relation to the storage of data filesand information that may be accessed by each of the software components.Client 400 contains applications 402-406 and data files 408-418. Wordprocessor 402 reads and writes documents and text files 408. Spellchecker 404 may access a variety of databases against which words in adatastream may be compared. Word processor 402 may invoke spell checker404 to check the spelling of words within a datastream generated byreading documents and text files 408.

[0038] A datastream is an undifferentiated byte-by-byte flow of data.Streams may be input and output from a variety of devices, includingstoring the stream as a file or sending the stream to a display deviceso that the content of the stream may be presented to the user in acontent window. As noted, a datastream may represent content retrievedfrom a file. However, a datastream may be derived from a variety ofsources. For example, a datastream may be content retrieved according toa specific network protocol across a network or the Internet. Adatastream may also be piped-output from a batch-processing program.

[0039] Spell checker 404 reads Standard Dictionary 410, User DictionaryA 412, and User Dictionary B 414, which provide lists of properlyspelled words. Spell checker 404 may also store user-specified spellingsof words in User Dictionary A 412 and User Dictionary B 414. UserDictionary A 412 and User Dictionary B 414 are editable and customizableto user preferred spellings of words and standard spellings of words notstored in Standard Dictionary 410.

[0040] Acronym/glossary tool 406 may be invoked by word processor 402 toperform processing on acronyms detected in datastreams generated byreading documents and text files 408. Acronym/glossary tool 406 may readand write User Glossary A 416 and User Glossary B 418. A glossary is anindexed list of terms or words found in or relating to a specificsubject or text with explanatory words or phrases. Acronym/glossary tool406 uses these glossaries to provide lists of previously definedacronyms. A standard glossary could be provided to acronym/glossary tool406 in a manner similar to the provision of Standard Dictionary 410.

[0041] User Glossary A 416 and User Glossary B 418 may beuser-customizable and user-editable so that the content of the glossarymay be tailored to the specific use required by a user of the dataprocessing system. Alternatively, one of these glossaries may be astandard glossary that contains acronyms used by the general public in amanner similar to Standard Dictionary 410 providing commonly used words.Acronym/glossary tool 406 may provide one glossary per document so thateach glossary is tailored to the specific content of a single document.

[0042] Client 400 may communicate with server 450 to retrieve otherglossary and dictionary information. Server 450 may respond to requestsfrom client 400 by retrieving other information from databases 452-458.

[0043] Corporate glossary 454 may store all acronyms used within anenterprise or organization. As users at various client computersthroughout the organizational network preferentially store acronyms inuser glossaries, the acronym/glossary tool on each computer may send thenew acronym to server 450 for storage in Corporate Glossary 454. Thedefinitions and expansions of these newly stored acronyms may then beshared with other users throughout the organizational network.

[0044] Department A Glossary 456 may store all acronyms used withinDepartment A of an organization. As users at various client computersthroughout Department A preferentially store acronyms in userglossaries, the acronym/glossary tool on each computer may send the newacronym to server 450 for storage in Department A Glossary 456. Thedefinitions and expansions of these newly stored acronyms may then beshared with other users throughout Department A. Department B Glossary458 operates in a similar manner.

[0045] Although databases 452-458 are shown as glossaries, thesedatabases may be alternatively configured as dictionaries. In thatsituation, unusual words, new words, special terms, and uncommonspellings may be stored and retrieved in a variety of locations withindictionaries stored on clients and servers.

[0046] Server 450 uses Corporate Organizational Database 452 to assistin the storage and retrieval of information in databases 452-458 fromvarious users within the organizational network. Server 450 ensures thatdatabases 452-458 are logically associated such that users view theinformation in the databases in a manner which reflects the corporateorganization stored in Corporate Organizational Database 452.

[0047] The manner in which the present invention uses the organizationalinformation is explained in greater detail further below.

[0048] With reference now to FIG. 5, a diagram depicts a standarddocument window within a graphical user interface. Document window 500contains title bar 502, scrollbars 504 and 512, and content area 526.Scroll bar 504 contains up arrow indicator 506, elevator 510 and downarrow 508 for scrolling the content area in a vertical direction inresponse to user manipulation of a pointing device such as a mouse.Scrollbar 512 contains left arrow 516 and right arrow 514 for scrollingthe content area in a horizontal direction in response to usermanipulation of a pointing device. Content area 526 has text thatcontains acronyms 520 and 522. An acronym is a word derived from theletters, a group of letters, or selected letters in a multi-worddescriptive noun or other expression that often serves as a mnemonic.Acronyms may be used for corporate names, such as “IBM” for“International Business Machines”. Other acronyms become common words inthe vernacular, such as “PC” for “personal computer” and “RAM” for“Random Access Memory”. In the example shown in content area 526,acronym 522 is “PBX”, which stands for “Private Branch Exchange”.Acronym 520 is “PSTN”, which stands for “Public Switch TelephoneNetwork”.

[0049] With reference now to FIG. 6, a pictorial representation of anapplication window depicts a manner in which an acronym/glossary toolmay be invoked in another application. Window 600 shows an applicationwindow for a word processor, which includes title bar 602, menus604-614, and content area 622. File menu 604 contains menu items thatprovide file manipulation functions. Edit menu 606 contains menu itemsthat provide editing functions. View menu 608 contains items thatprovide formatting functions for the content displayed in documentwindows. Tools menu 610 provides menu item access to various functionsthat may operate in conjunction with the word processor. Window menu 612contains menu items that allow a user to manipulate various documentwindows within the word processor. Help menu 614 provides a user withaccess to help files.

[0050] Tools menu 610 contains “Spell Checker” menu items 616,“Acronym/Glossary Tool” menu item 618, and “Macro” menu item 620. Menus616-620 may be selected in a manner that is well-known in the art forinitiating the depicted function. In this example, a spell checker andan acronym/glossary tool are separately invokable functions.Alternatively, the spell checker and acronym/glossary tool may becombined so that the spell checking function and acronym/glossarychecking function operate in conjunction within a single tool. Asanother alternative, the acronym/glossary checking function may operatewithin an Internet browser. Other well-known manners of invoking variousfunctions within an application may be provided in accordance with theoperation of the present invention.

[0051] With reference now to FIG. 7, a pictorial document window depictsan acronym and its expansion within a datastream. FIG. 7 is similar toFIG. 5. Window 700 contains content area 702 that presents the contentof a document to a user. The content area contains an acronym “PBX” andits expansion “Private Branch Exchange”. Acronym 704 is immediatelyfollowed by acronym expansion 706. The expansion of acronym 704 may havebeen performed automatically by the acronym tool according to an optionspecified by a user within an acronym tool. In this example, the acronymtool has expanded acronym 704 by immediately following it with itsexpansion because the occurrence of “PBX” in content area 702 is theforemost occurrence of this acronym within the document of datastream.Alternatively, the expansion of an acronym may be placed in front of theacronym or at some other location in close proximity to the acronym, andthe alternative placement may be selectable as an option by the user.

[0052] With reference now to FIG. 8, a pictorial representation depictsa dialog box for a spell checking tool that may have been invoked inresponse to a user request. Window 800 may be presented to a user inresponse to a user selection through a menu similar to that shown inFIG. 6. Window 800 combines the functionality of a spell checker and anacronym/glossary tool.

[0053] At the point in time at which a dialog box similar to window 800appears, the spell checker tool has scanned the words present in adocument window of a word processor in order to determine whether any ofthe words are misspelled. Words that have not been identified ascorrectly spelled words or as previously defined acronyms or specialterms are presented to the user within window area 804.

[0054] In this case, the word “PBX” has been located within the documentwindow but has not been matched with any words in any of thedictionaries or with any acronyms or special terms in any of theglossaries. Properly spelled words are suggested to a user in windowarea 806. In this example, the word “POX” has been suggested to the useras a replacement word for the unidentified word “PBX”. The spell checkertool identifies potentially misspelled words and suggests to the userproperly spelled words.

[0055] If the user believes that the word is properly spelled or is anundefined acronym or special term, the user may select IGNORE button810. Selection of the IGNORE button informs the spell checker that thecurrently unidentified word, acronym, or term should be ignored by thespell checker, and the spell checking function should continue scanningfor misspelled words within the current document.

[0056] If the user believes that the unidentified word is a correctlyspelled word, then the user may select “ADD TO DICTIONARY” button 814that informs the spell checker to add the unidentified word to one ofthe dictionary files as a correctly spelled word. Subsequent comparisonsbetween the current word and the modified dictionary will result in apositive identification of the word so that it is not flagged as amisspelled word.

[0057] When the user requests to add the word to a dictionary, the spellchecker may first store the new word in the local dictionary, mostlikely in a user dictionary associated with the current user. The spellchecker may also attempt to disseminate the new word throughout anorganization by sending the new word to a server in command ofdisseminating dictionary and glossary information. The disseminationprocess is described in greater detail further below.

[0058] If the user agrees that the unidentified word is a misspelledword and believes that the unidentified word should be replaced with theword suggested by the spell checker, then the user may select CHANGEbutton 812, which will replace the unidentified word with the suggestedword.

[0059] If the user believes that the unidentified word is a correctlyspelled acronym or special term, the user may select “ADD TO GLOSSARY”button 816 that informs the spell checker to add the unidentified wordto one of the glossary files as a correctly spelled acronym/term. Thespell checker may then pop up another window in which the user may enterthe expansion and definition of the new acronym/term. If no default filehas previously been specified, then the user may be prompted to select aparticular glossary into which the acronym should be placed. If the userdesires to stop the spell checker, then the user may select CANCELbutton 808.

[0060] Acronym box 830 presents a word that has previously beenidentified as an acronym and may have been retrieved from a glossary. Inthis case, the acronym box contains the acronym “PCX” which is theclosest acronym that approximates the spelling of the currentlyunidentified word. The acronym box also contains the expansion of thesuggested acronym. Alternatively, the expansion of the acronym may beprovided in a separate window box. Definition box 850 contains thedefinition for the acronym presented within acronym box 830.

[0061] “VIEW GLOSSARY” button 840 provides the user with the ability toview the remaining contents of the glossary. This may be helpful if theuser has misspelled the acronym but believes that the spelling isapproximately correct and would like to view the spelling of otheracronyms.

[0062] Window 800 also contains Auto Expand control 820 for allowing theuser to specify an option for the automatic expansion of the displayedacronym/term within the current document. Radio buttons 822 and 824allow the user to toggle the feature on and off. If the user selectsthis feature, the acronym/glossary tool will insert an expansion of anacronym/term automatically into the current document in close proximityto the foremost occurrence of the acronym/term in the document.

[0063] “OPTIONS” button 842 may provide the user with the ability tospecify rules for resolving conflicts in the retrieval and expansion ofacronyms from multiple sources. For example, the acronym “PCX” may befound in several glossaries, and the acronym/glossary tool may providethe user with the ability to specify a ranking for each source. In thecase in which the acronym/glossary tool finds an identical acronym inmultiple source files, if the user has previously specified that theranking for a user glossary is higher than the standard glossary, thenthe acronym/glossary tool may present the user with an expansion anddefinition for the acronym from the user glossary, and the user couldthen request to view the information retrieved from the standardglossary.

[0064] Drop-down menu 844 displays the source of the acronym in acronymbox 830. In this case, “PCX” has been retrieved from User Glossary A.The user may see other sources for identically spelled acronyms byselecting one of the menu items in drop-down menu 844. For example, ifanother glossary had an acronym “PCX”, even if the acronym had adifferent expansion and definition, then the user could view the acronymby selecting the appropriate source file in the drop-down menu.

[0065] With reference now to FIG. 9, a block diagram depicts a set ofhierarchically arranged glossaries and dictionaries. FIG. 9 describesthe files as dictionary/glossaries in a manner in which dictionary-typeinformation for a set of particular words may be combined withglossary-type information so that any information related to aparticular word may be found in a single file. Alternatively,glossary-type information and dictionary-type information may be storedin different files.

[0066] User Dictionary/Glossary A 910 and User Dictionary/Glossary B 908are depicted as child dictionaries/glossaries of parentdictionary/glossary 906. Department A Dictionary/Glossary 906 andDepartment B Dictionary/Glossary 904 are depicted as childdictionaries/glossaries of parent dictionary/glossary 902. CorporateDictionary/Glossary 902 is depicted as the root glossary. However,alternate configurations of dictionaries and glossaries could bedepicted in which other organizational entities are depicted within thetree of dictionaries and glossaries, such as subdepartments, divisions,etc.

[0067] The hierarchical set of dictionaries and glossaries serves as aconceptual representation of the manner in which a user may view thestorage of the dictionaries and glossaries. This conceptualrepresentation may reflect the structure of the organization in whichthe dictionaries and glossaries are being used. A server which maintainsthese dictionaries and glossaries may retrieve information about thestructure of the organization from a corporate organizational database,such as database 452 shown in FIG. 4. Although the dictionaries andglossaries may be stored in a data structure that reflects theorganizational structure, the dictionaries and glossaries may be storedin any number of different manners, and a dictionary server or aglossary server, through its various interfaces, creates an appearancethat the dictionaries or glossaries are stored in a hierarchical manner.

[0068] The present invention allows a user to share new word, newacronym, or new term information with other persons within the sameworkgroup, department, division, corporation, etc. The server, throughappropriate links with the system administration software, such assession management, etc., can determine the appropriate organizationalinformation for each user that is accessing the hierarchical set ofwords. In this manner, the organizational unit builds a database ofinformation that is specifically tailored to the needs of the userswithin the organizational unit.

[0069] Each time that the user requests to save a new spelling of aword, an expansion or definition of a new acronym, or a special term,the user may specify a file to which the user desires to store theinformation. Although the spell checker tool or acronym/glossary toolmay already have a default file, the user may specify a file accordingto the user's preference. If the user believes that the new word shouldbe stored at a department level so that other persons within thedepartment may benefit from the information, then the user may requestthat the new word be stored in the dictionary or glossary for thedepartment. In a similar manner, the user may request that the new wordbe stored in the dictionary or glossary for the corporation or someother organizational unit.

[0070] With reference now to FIG. 10, a pictorial representation depictsa specific user's preference list for the manner in which a set ofhierarchically arranged dictionaries or glossaries are to be searched.FIG. 10 describes the files as dictionary/glossaries in a manner inwhich dictionary-type information for a set of particular words may becombined with glossary-type information so that any information relatedto a particular word may be found in a single file. Alternatively,glossary-type information and dictionary-type information may be storedin different files.

[0071] List 1000 shows a priority list for the manner in which a set ofdictionaries or glossaries are to be searched. Although the user mayperceive that a set of dictionaries or glossaries are hierarchicallyarranged, each user may specify a preferential ranking for the manner inwhich information retrieved from the dictionaries or glossaries are tobe presented to the user. Each user's list may be stored in a userprofile on the server, on the client, or within the spell checker toolor acronym/glossary tool.

[0072] Preference list entries 1002-1010 allow the user to choose anorder for the retrieval of information from the set of hierarchicaldictionaries or glossaries. If more than one dictionary or glossary inthe set of dictionaries or glossaries has information that may bepertinent to the word that is searched, then the information ispresented to the user in the manner previously selected by the useraccording to the ranking of the entry within the list. If the user hasnot previously specified a preference list, then the information may bepresented in a default manner, for example, according to theinformational structure present in a corporate organizational database.

[0073] With reference now to FIGS. 11A-11C, a diagram depicts a standarddocument window within a graphical user interface in which a user ispresented with a choice of information retrieved from multipleglossaries. FIG. 11A shows a document window 1100 containing multipleacronyms. FIG. 11B shows the selection of acronym 1102, after which theuser is presented with a menu from which the user may choose anappropriate action for the selection. Alternatively, the user clicks theright mouse button to see the menu of actions, or the user simplyright-clicks the acronym without selecting the acronym.

[0074] One of the actions that is presented to the user is “Expand” menuitem 1104. The application has determined in the background that theword that the user has selected is an acronym. By searching through theavailable glossaries, the application, either alone or executing inconjunction with the acronym/glossary tool, has found at least oneglossary entry for the word, and the application provides the user withthe ability to insert the expansion of the acronym in close proximity tothe acronym.

[0075]FIG. 11C shows the selection of the “Expand” menu item by theuser. The menu of actions is a hierarchical menu, and after the user hasselected the “Expand” menu item, the application presents the choice ofacronyms to the user as a submenu. In this case, the application hascommunicated with a server to retrieve a set of identically spelledacronyms “PBX” that have different meanings. Menu item 1106 contains“PBX: Public Branch Exchange” retrieved from a personal user glossarynamed “User Glossary A”. Menu item 1108 contains “PBX: Public BondTransfer” retrieved from a departmental glossary named “FinanceDepartment Glossary”. Menu item 1110 contains “PBX:PolyBiphenylXenochloride” retrieved from a departmental glossary name“Manufacturing Department Glossary”. Alternatively, the name of theglossary file is not shown, or other information pertinent to theacronym may be shown, such as a definition for the acronym. Once theuser has selected an expansion for the acronym, then the application mayinsert the expansion in close proximity to the acronym, as shown in FIG.7.

[0076] The application has presented the retrieved acronyms in the orderspecified by the user in a hierarchical preference list similar to thelist shown in FIG. 10. In this case, the user has specified thatinformation from User Glossary A should be presented before informationfrom the Finance Department Glossary, which should be presented beforethe information from the Manufacturing Department Glossary.

[0077] If a user is editing a document, and the user has previouslyselected an “auto-expand” option similar to that shown in FIG. 8, theneach time that the user types a word that the application recognizes asan acronym, then the application may pop-up a dialog box or a menusimilar to that shown in FIG. 11C to allow a user to select the acronymexpansion that is best associated with the content of the document.

[0078] With reference now to FIG. 12, a flowchart depicts a manner inwhich changes to dictionaries and glossaries may be disseminatedthroughout an organization. The process begins when a user of anapplication with an associated language tool, either a spell checkingtool or acronym/glossary tool, determines that a new word should beadded to a dictionary or glossary (step 1202). Depending on optionsselected by a user on the client computer, the language tool may need todetermine the manner in which the user's update request should beprocessed (step 1204).

[0079] If the user specifies a particular dictionary or glossary, thenthe language tool may store the new word or acronym, or may request thestorage of the new word or acronym, in the specified file. If thespecified file is located locally on a client computer, then thelanguage tool may update the local file (step 1206). If the specifiedfile is located centrally on a server or elsewhere within the network,then the language tool may send the appropriate update request to theappropriate server (step 1208).

[0080] The user may have the ability to set several options within thelanguage tool for requesting dictionary or glossary updates. Forexample, each time the user requests an update, the language tool maysend an update request to the server, whether or not a specificdictionary or glossary file has been specified. Various selectableoptions may be chosen by the user or by a system administrator as to themanner in which an update to a dictionary or glossary file isdisseminated throughout a network.

[0081] When the server receives an update request (step 1210), theserver determines the appropriate files to be updated. This may requirechecking a system administration file or user profile file to lookup anyrules for the manner in which update requests from the user are to beprocessed (step 1212). These update rules may reflect a corporateorganizational structure or may require lookups in an organizationaldatabase.

[0082] For example, the server may update only a departmental dictionaryor glossary for this particular user. In this case, it may have beendetermined that new terms from this user and similar users are usuallyonly needed or helpful to other people within the same department. Ifthe engineering department frequently uses terms that are only useful tofellow engineers, then the server may not replicate the update to anyother dictionaries or glossaries outside of the engineering department.This type of rule may be set as a default for all persons within adepartment and overridden on a per-user basis, etc.

[0083] As another example, any update requests from another user mayrequire an update to a corporate-level dictionary or glossary. If thehuman resources department frequently uses terms that must be understoodby all employees so that each employee understands a company benefitplan, then these updates may be replicated to a corporate-level file.

[0084] The update rules for determining which files to update may alsospecify that an update to a dictionary or glossary at a particularorganizational level is to be disseminated to any person within theparticular organizational level. In this case, the server replicates theupdate to the appropriate persons at the appropriate client computersthat have copies of the dictionary or glossary (step 1214). Theseupdates may be sent whenever the client application notifies the serverthat the application is in use. Alternatively, the client may configuredwith the appropriate system information so that the client determineswhich copies of the dictionary or glossary must be updated.

[0085] New words and terms may be disseminated almost immediatelythroughout an organization by modifying the rules by which thedictionaries or glossaries are updated. If an update to a centraldictionary or glossary is always replicated from a server to othercopies of the dictionary or glossary on multiple clients and vice versa,then the copy on the server may be regarded as a master copy, and eachcopy of the dictionary or glossary may be kept synchronized and coherentwith the master dictionary or glossary.

[0086] The processing methods and tools of the present inventionprovides a user with a convenient manner for creating a document ordatastream that is more readable. New words and acronyms may be storedand retrieved from a dictionary or glossary that may be one of a set ofdictionaries or glossaries that are organized hierarchically in a mannersimilar to the organizational hierarchy of the users which use thedictionaries or glossaries.

[0087] By storing and retrieving word information in a hierarchicalfashion, the dictionaries and glossaries may be configured to theparticular needs and purposes of the employees. In this manner, thedictionary or glossary will tend to match the context of the content ofthe documents that are created and viewed by these employees. Theemployees may then assist other employees by replicating languageinformation to other dictionaries or glossaries so that other employeesmay insert the language information into other documents or may use thelanguage information to understand other documents.

[0088] It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media such afloppy disc, a hard disk drive, a RAM, and CD-ROMs and transmission-typemedia such as digital and analog communications links.

[0089] The description of the present invention has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art. The embodiment was chosen and described in order to bestexplain the principles of the invention, the practical application, andto enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated.

What is claimed is:
 1. A method for updating a plurality of dictionariesor glossaries, the method comprising the computer-implemented steps of:executing an application on a client, wherein the application accesses alocal copy of a dictionary or glossary; updating a master dictionary orglossary at a server; and serving the update to the master dictionary orglossary to the application on the client to update the local copy ofthe dictionary or glossary, wherein a dictionary comprises spellings anddefinitions of terms or words, and wherein a glossary comprisesexplanatory words or explanatory phrases for a list of terms or wordsfound in an associated document or datastream.
 2. The method of claim 1further comprising: defining a new term at the client; and responsive toa determination that the new term is missing from the local copy of thedictionary or glossary at the client, sending a message comprising thenew term to the server to update the master dictionary or glossary. 3.The method of claim 2 wherein the new term is an acronym.
 4. The methodof claim 1 wherein a dictionary or a glossary is a member of ahierarchical set of dictionaries or glossaries associated withorganizational units.
 5. A method for processing a datastream, themethod comprising the computer-implemented steps of: detecting anacronym in a datastream; and automatically inserting an expansion of theacronym in the datastream in close proximity to the acronym, wherein theexpansion of the acronym is selected from a hierarchical set ofglossaries.
 6. The method of claim 5 further comprising: updating amaster dictionary or glossary at a server; and serving the update to themaster dictionary or glossary to a client to update a local copy of thedictionary or glossary, wherein the local copy of the dictionary orglossary is a member of a hierarchical set of dictionaries orglossaries.
 7. A method for processing a datastream within a dataprocessing system, the method comprising the computer-implemented stepsof: automatically scanning a datastream; automatically detecting, in thedatastream, a word that does not match an indexed term or word in aglossary; identifying the unmatched word as an acronym; and in responseto identifying the acronym, inserting data associated with the acronyminto the datastream in close proximity to the acronym, wherein the dataassociated with the acronym is selected from a hierarchical set ofglossaries.
 8. The method of claim 7 further comprising: anorganizational database comprising information for organizational unitswithin the data processing system, wherein each glossary in thehierarchical set of glossaries is associated with an organizational unit9.
 9. The method of claim 7 wherein the step of selecting dataassociated with the acronym further comprises retrieving data from eachsource glossary, wherein a source glossary is a glossary within thehierarchical set of glossaries that contains an entry for the acronym.10. The method of claim 9 further comprising: presenting to the user thedata retrieved from each source glossary; selecting a source glossary;and identifying the retrieved data from the selected source glossary asthe inserted data in the datastream.
 11. The method of claim 10 furthercomprising: an organizational database comprising information fororganizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit; storing a user preference list for an order ofpresentation for information from a set of glossaries, wherein entriesin the user preference list are associated with the organizationalunits; and presenting a list of source glossaries to a user according toan order stored in the user preference list.
 12. The method of claim 7further comprising: updating a master glossary at a server; and servingthe update to the master glossary to a client to update a local copy ofthe glossary, wherein the local copy of the glossary is a member of thehierarchical set of glossaries.
 13. The method of claim 7 wherein thestep of selecting data associated with the acronym further comprisesretrieving data from a default glossary, wherein the default glossary isa glossary previously selected from the hierarchical set of glossaries.14. The method of claim 13 wherein the default glossary is selectedbased on a predetermined association selected from the group consistingof: an association between a glossary and a user, an association betweena glossary and a document or datastream, an association between aglossary and an organizational unit, or an association between a userand an organizational unit.
 15. A method for updating a plurality ofdictionaries or glossaries stored within a data processing system, themethod comprising the computer-implemented steps of: automaticallyscanning a datastream; automatically detecting, in the datastream, aword that does not match an indexed term or word in a dictionary or aglossary; and responsive to an indication that the unmatched word is aproperly spelled new term, determining to update a dictionary orglossary with the new term, wherein the dictionary or glossary is amember of a hierarchically ordered set of dictionaries and/orglossaries.
 16. The method of claim 15 further comprising: presenting alist of a set of dictionaries and/or glossaries to a user; andselecting, from the presented list, a dictionary or glossary to beupdated with the new term; and updating the selected dictionary orglossary.
 17. The method of claim 15 further comprising: anorganizational database comprising information for organizational unitswithin the data processing system, wherein each glossary in thehierarchical set of glossaries is associated with an organizationalunit; and determining a list of dictionaries and/or glossaries to beupdated with the new term with reference to the organizational database.18. The method of claim 17 wherein the step of determining the list ofdictionaries and/or glossaries further comprises: responsive to adetermination of a user that indicated that the unmatched word is aproperly spelled new term, determining the organizational unitcontaining the user; and selecting a set of dictionaries and/orglossaries based on the organizational unit for the user.
 19. The methodof claim 18 wherein the step of selecting a set of dictionaries and/orglossaries based on the organizational unit for the user furthercomprises: determining, according to previously stored selectableoptions, whether local copies of dictionaries and/or glossaries storedon computers used by persons within the organizational unit are to beupdated upon-an indication of a new term by the user; and determining,according to previously stored selectable options, whether a master copyof a dictionary and/or glossary stored on a server is to be updated uponan indication of a new term by the user.
 20. The method of claim 17further comprising: updating each dictionary and/or glossary on the listof dictionaries and/or glossaries to be updated with the new term. 21.The method of claim 20 wherein the step of updating each dictionaryand/or glossary on the list of dictionaries and/or glossaries furthercomprises: receiving, at a server in the data processing system, anupdate message comprising the new term; and sending, from the server, anupdate message comprising the new term to each client computer storing acopy of each dictionary and/or glossary.
 22. The method of claim 21further comprising: updating a master copy of each dictionary and/orglossary on the server.
 23. The method of claim 17 wherein the step ofdetermining a list of dictionaries and/or glossaries to be updated withthe new term with reference to the organizational database is performedon a server within the data processing system.
 24. The method of claim17 wherein the step of determining a list of dictionaries and/orglossaries to be updated with the new term with reference to theorganizational database is performed on a client computer within thedata processing system.
 25. The method of claim 15 wherein thedictionary or glossary determined to be updated is a default dictionaryor glossary previously selected from the hierarchically ordered set ofdictionaries and/or glossaries.
 26. A data processing system forupdating a plurality of dictionaries or glossaries, the data processingsystem comprising: executing means for executing an application on aclient, wherein the application accesses a local copy of a dictionary orglossary; updating means for updating a master dictionary or glossary ata server; and server means for serving the update to the masterdictionary or glossary to the application on the client to update thelocal copy of the dictionary or glossary, wherein a dictionary comprisesspellings and definitions of terms or words, and wherein a glossarycomprises explanatory words or explanatory phrases for a list of termsor words found in an associated document or datastream.
 27. The dataprocessing system of claim 26 further comprising: defining means fordefining a new term at the client; and sending means for sending, inresponse to a determination that the new term is missing from the localcopy of the dictionary or glossary at the client, a message comprisingthe new term to the server to update the master dictionary or glossary.28. The data processing system of claim 27 wherein the new term is anacronym.
 29. The data processing system of claim 26 wherein a dictionaryor a glossary is a member of a hierarchical set of dictionaries orglossaries associated with organizational units.
 30. A data processingsystem for processing a datastream, the data processing systemcomprising: detecting means for detecting an acronym in a datastream;and inserting means for automatically inserting an expansion of theacronym in the datastream in close proximity to the acronym, wherein theexpansion of the acronym is selected from a hierarchical set ofglossaries.
 31. The data processing system of claim 30 furthercomprising: updating means for updating a master dictionary or glossaryat a server; and server means for serving the update to the masterdictionary or glossary to a client to update a local copy of thedictionary or glossary, wherein the local copy of the dictionary orglossary is a member of a hierarchiacal set of dictionaries orglossaries.
 32. A data processing system for processing a datastream ina data processing system, the data processing system comprising:scanning means for automatically scanning a datastream; detecting meansfor automatically detecting, in the datastream, a word that does notmatch an indexed term or word in a glossary; first identifying means foridentifying the unmatched word a s an acronym; and inserting means forinserting, in response to identifying the acronym, data associated withthe acronym into the datastream in close proximity to the acronym,wherein the data associated with the acronym is selected from ahierarchical set of glossaries.
 33. The data processing system of claim32 further comprising: an organizational database comprising informationfor organizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit.
 34. The data processing system of claim 32 whereinselecting data associated with the acronym further comprises retrievingmeans for retrieving data from each source glossary, wherein a sourceglossary is a glossary within the hierarchical set of glossaries thatcontains an entry for the acronym.
 35. The data processing system ofclaim 34 further comprising: presenting means for presenting to the userthe data retrieved from each source glossary; selecting means forselecting a source glossary; and second identifying means foridentifying the retrieved data from the selected source glossary as theinserted data in the datastream.
 36. The data processing system of claim35 further comprising: an organizational database comprising informationfor organizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit; storing means for storing a user preference listfor an order of presentation for information from a set of glossaries,wherein entries in the user preference list are associated with theorganizational units; and presenting means for presenting a list ofsource glossaries to a user according to an order stored in the userpreference list.
 37. The data processing system of claim 32 furthercomprising: updating means for updating a master glossary at a server;and server means for serving the update to the master glossary to aclient to update a local copy of the glossary, wherein the local copy ofthe glossary is a member of the hierarchical set of glossaries.
 38. Thedata processing system of claim 32 wherein the selected data associatedwith the acronym further comprises data retrieved from a defaultglossary, wherein the default glossary is a glossary previously selectedfrom the hierarchical set of glossaries.
 39. The data processing systemof claim 38 wherein the default glossary is selected based on apredetermined association selected from the group consisting of: anassociation between a glossary and a user, an association between aglossary and a document or datastream, an association between a glossaryand an organizational unit, or an association between a user and anorganizational unit.
 40. A data processing system for updating aplurality of dictionaries or glossaries, the data processing systemcomprising: scanning means for automatically scanning a datastream;detecting means for automatically detecting, in the datastream, a wordthat does not match an indexed term or word in a dictionary or aglossary; first determining means for determining, in response to anindication that the unmatched word is a properly spelled new term, toupdate a dictionary or glossary with the new term, wherein thedictionary or glossary is a member of a hierarchically ordered set ofdictionaries and/or glossaries.
 41. The data processing system of claim40 further comprising: presenting means for presenting a list of a setof dictionaries and/or glossaries to a user; and selecting means forselecting, from the presented list, a dictionary or glossary to beupdated with the new term; and updating means for updating the selecteddictionary or glossary.
 42. The data processing system of claim 40further comprising: an organizational database comprising informationfor organizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit; and second determining means for determining a listof dictionaries and/or glossaries to be updated with the new term withreference to the organizational database.
 43. The data processing systemof claim 42 wherein the second determining means for determining thelist of dictionaries and/or glossaries further comprises: thirddetermining means for determining the organizational unit containing theuser, in response to a determination of a user that indicated that theunmatched word is a properly spelled new term; and selecting means forselecting a set of dictionaries and/or glossaries based on theorganizational unit for the user.
 44. The data processing system ofclaim 43 wherein the selecting means for selecting a set of dictionariesand/or glossaries based on the organizational unit for the user furthercomprises: fourth determining means for determining, according topreviously stored selectable options, whether local copies ofdictionaries and/or glossaries stored on computers used by personswithin the organizational unit are to be updated upon an indication of anew term by the user; and fifth determining means for determining,according to the previously stored selectable options, whether a mastercopy of a dictionary and/or glossary stored on a server is to be updatedupon an indication of a new term by the user.
 45. The data processingsystem of claim 42 further comprising: updating means for updating eachdictionary and/or glossary on the list of dictionaries and/or glossariesto be updated with the new term.
 46. The data processing system of claim45 wherein the updating means for updating each dictionary and/orglossary on the list of dictionaries and/or glossaries furthercomprises: receiving means for receiving, at a server in the dataprocessing system, an update message comprising the new term; andsending means for sending, from the server, an update message comprisingthe new term to each client computer storing a copy of each dictionaryand/or glossary.
 47. The data processing system of claim 46 furthercomprising: updating means for updating a master copy of each dictionaryand/or glossary on the server.
 48. The data processing system of claim42 wherein the second determining means for determining a list ofdictionaries and/or glossaries to be updated with the new term withreference to the organizational database is performed on a server withinthe data processing system.
 49. The data processing system of claim 42wherein the third determining means for determining a list ofdictionaries and/or glossaries to be updated with the new term withreference to the organizational database is performed on a clientcomputer within the data processing system.
 50. The data processingsystem of claim 40 wherein the dictionary or glossary determined to beupdated is a default dictionary or glossary previously selected from thehierarchically ordered set of dictionaries and/or glossaries.
 51. Acomputer program product in a computer-readable medium for use in a dataprocessing system for updating a plurality of dictionaries orglossaries, the computer program product comprising: first instructionsfor executing an application on a client, wherein the applicationaccesses a local copy of a dictionary or glossary; second instructionsfor updating a master dictionary or glossary at a server; and thirdinstructions for serving the update to the master dictionary or glossaryto the application on the client to update the local copy of thedictionary or glossary, wherein a dictionary comprises spellings anddefinitions of terms or words, and wherein a glossary comprisesexplanatory words or explanatory phrases for a list of terms or wordsfound in an associated document or datastream.
 52. The computer programproduct of claim 51 wherein a dictionary or a glossary is a member of ahierarchical set of dictionaries or glossaries associated withorganizational units.
 53. A computer program product in acomputer-readable medium for use in a data processing system forprocessing a datastream, the computer program product comprising: firstinstructions for detecting an acronym in the datastream; and secondinstructions for automatically inserting an expansion of the acronym inthe datastream in close proximity to the acronym, wherein the expansionof the acronym is selected from a hierarchical set of glossaries.
 54. Acomputer program product in a computer-readable medium for use in a dataprocessing system for processing a datastream within the data processingsystem, the computer program product comprising: first instructions forautomatically scanning the datastream; second instructions forautomatically detecting, in the datastream, a word that does not matchan indexed term or word in a glossary; third instructions foridentifying the unmatched word as an acronym; and fourth instructionsfor inserting, in response to identifying the acronym, data associatedwith the acronym into the datastream in close proximity to the acronym,wherein the data associated with the acronym is selected from ahierarchical set of glossaries.
 55. A computer program product in acomputer-readable medium for use in a data processing system forupdating a plurality of dictionaries or glossaries stored within thedata processing system, the computer program product comprising: firstinstructions for automatically scanning a datastream; secondinstructions for automatically detecting, in the datastream, a word thatdoes not match an indexed term or word in a dictionary or a glossary;and third instructions for determining, responsive to an indication thatthe unmatched word is a properly spelled new term, to update adictionary or glossary with the-new term, wherein the dictionary orglossary is a member of a hierarchically ordered set of dictionariesand/or glossaries.
 56. The computer program product of claim 55 furthercomprising: instructions for presenting a list of a set of dictionariesand/or glossaries to a user; instructions for selecting, from thepresented list, a dictionary or glossary to be updated with the newterm; and instructions for updating the selected dictionary or glossary.57. The computer program product of claim 55 further comprising: anorganizational database comprising information for organizational unitswithin the data processing system, wherein each glossary in thehierarchical set of glossaries is associated with an organizationalunit; and instructions for determining a list of dictionaries and/orglossaries to be updated with the new term with reference to theorganizational database.
 58. The computer program product of claim 57wherein the instructions for determining the list of dictionaries and/orglossaries further comprise: instructions for determining, responsive toa determination of a user that indicated that the unmatched word is aproperly spelled new term, the organizational unit containing the user;and instructions for selecting a set of dictionaries and/or glossariesbased on the organizational unit for the user.
 59. The computer programproduct of claim 58 wherein the instructions for selecting a set ofdictionaries and/or glossaries based on the organizational unit for theuser further comprise: instructions for determining, according topreviously stored selectable options, whether local copies ofdictionaries and/or glossaries stored on computers used by personswithin the organizational unit are to be updated upon an indication of anew term by the user; and instructions for determining, according topreviously stored selectable options, whether a master copy of adictionary and/or glossary stored on a server are to be updated upon anindication of a new term by the user.
 60. The computer program productof claim 57 further comprising: instructions for updating eachdictionary and/or glossary on the list of dictionaries and/or glossariesto be updated with the new term.
 61. The computer program product ofclaim 60 wherein the instructions for updating each dictionary and/orglossary on the list of dictionaries and/or glossaries further comprise:instructions for receiving, at a server in the data processing system,an update message comprising the new term; and instructions for sending,from the server, an update message comprising the new term to eachclient computer storing a copy of each dictionary and/or glossary. 62.The computer program product of claim 61 further comprising:instructions for updating a master copy of each dictionary and/orglossary on the server.
 63. The computer program product of claim 57wherein the instructions for determining a list of dictionaries and/orglossaries to be updated with the new term with reference to theorganizational database are performed on a server within the dataprocessing system.
 64. The computer program product of claim 57 whereinthe instructions for determining a list of dictionaries and/orglossaries to be updated with the new term with reference to theorganizational database are performed on a client computer within thedata processing system.
 65. The computer program product of claim 55wherein the dictionary or glossary determined to be updated is a defaultdictionary or glossary previously selected from the hierarchicallyordered set of dictionaries and/or glossaries.